#ifndef LMODEL_H
#define LMODEL_H
#include "model.h"
#include <QList>
class LModel:public Model
{
public:
    struct Edge //边结构体
    {
        int id;//该点的序号
        int next;//下一个点
        int length;//长度
        Edge(){}//默认构造函数
        Edge(int id,int next,int length)
        {
            this->id=id;this->next=next;this->length=length;
        }
    };
    /**
     * @brief LModel 根据点个数构造模型
     * @param num 点个数
     */
    LModel(int num);
    /**
     * @brief LModel 复制构造函数,进行深层复制
     * @param another
     */
    LModel(const LModel & another);
    /**
     * @brief LModel 析构函数
     */
    ~LModel();
    /**
     * @brief addEdge 添加一条新边
     * @param start 起点
     * @param end   终点
     * @param length    长度
     */
    virtual void addEdge(int start,int end,int length);
    /**
     * @brief updateDistance 更新距离和路径
     */
    virtual void updateDistance();
    QList<Edge> * edges;   //边链表数组
};

#endif // LMODEL_H
